/**
 * Copyright &copy; 2012-2017 <a href="https://vivo.com">vivo</a> All rights reserved.
 */
package com.vivo.employee.entity;

import com.thinkgem.jeesite.modules.sys.entity.Office;
import org.hibernate.validator.constraints.Length;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import javax.validation.constraints.NotNull;
import com.thinkgem.jeesite.common.utils.excel.annotation.ExcelField;

import com.thinkgem.jeesite.common.persistence.DataEntity;

/**
 * 入职管理Entity
 * @author jyangye
 * @version 2017-12-28
 */
public class ViEmpIndutyManager extends DataEntity<ViEmpIndutyManager> {
	
	private static final long serialVersionUID = 1L;
	private String employeeId;		// 员工编号

    private Office comp;
    private Office dept;
    private Office post;

	private String name;		// 姓名
	private String phone;		// 手机

    private String code;

	private Date indutyDate;		// 入职日期
	private Date preOndutyDate;		// 预计转正日期
	private String isCheck;		// 提交审核
	private String isComplete;		// 补全信息
	private String cancelReason;		// 放弃入职原因
	private Date beginIndutyDate;		// 开始 入职日期
	private Date endIndutyDate;		// 结束 入职日期

    private String status; // 入职状态


	
	public ViEmpIndutyManager() {
		super();
	}

	public ViEmpIndutyManager(String id){
		super(id);
	}

	@Length(min=0, max=32, message="员工编号长度必须介于 0 和 32 之间")
	@ExcelField(title="员工编号", align=2, sort=20)
	public String getEmployeeId() {
		return employeeId;
	}

	public void setEmployeeId(String employeeId) {
		this.employeeId = employeeId;
	}

    @ExcelField(title="组织机构", type = 1, align=2, sort=30)
    public Office getComp() {
        return comp;
    }

    public void setComp(Office comp) {
        this.comp = comp;
    }


    @ExcelField(title="部门", align=2, sort=40)
    public Office getDept() {
        return dept;
    }

    public void setDept(Office dept) {
        this.dept = dept;
    }

    @ExcelField(title="职位", align=2, sort=50)
    public Office getPost() {
        return post;
    }

    public void setPost(Office post) {
        this.post = post;
    }

	
	@Length(min=1, max=16, message="姓名长度必须介于 1 和 16 之间")
	@ExcelField(title="*姓名", align=2, sort=60, isText = true)
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	@Length(min=1, max=16, message="手机长度必须介于 1 和 16 之间")
	@ExcelField(title="*手机", align=2, sort=70, isText = true)
	public String getPhone() {
		return phone;
	}

	public void setPhone(String phone) {
		this.phone = phone;
	}

    @Length(min=1, max=32, message="手机长度必须介于 1 和 32 之间")
    @ExcelField(title="*身份证号", align=2, sort=75, isText = true)
    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    @JsonFormat(pattern = "yyyy-MM-dd")
	@NotNull(message="入职日期不能为空")
	@ExcelField(title="入职日期", align=2, sort=80)
	public Date getIndutyDate() {
		return indutyDate;
	}

	public void setIndutyDate(Date indutyDate) {
		this.indutyDate = indutyDate;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd")
	@ExcelField(title="预计转正日期", align=2, sort=90)
	public Date getPreOndutyDate() {
		return preOndutyDate;
	}

	public void setPreOndutyDate(Date preOndutyDate) {
		this.preOndutyDate = preOndutyDate;
	}
	
	@Length(min=0, max=11, message="提交审核长度必须介于 0 和 11 之间")
	@ExcelField(title="提交审核", align=2, sort=100,dictType = "yes_no")
	public String getIsCheck() {
		return isCheck;
	}

	public void setIsCheck(String isCheck) {
		this.isCheck = isCheck;
	}
	
	@Length(min=0, max=11, message="补全信息长度必须介于 0 和 11 之间")
	@ExcelField(title="补全信息", align=2, sort=110,dictType = "yes_no")
	public String getIsComplete() {
		return isComplete;
	}

	public void setIsComplete(String isComplete) {
		this.isComplete = isComplete;
	}


    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    @Length(min=0, max=64, message="放弃入职原因长度必须介于 0 和 64 之间")
	@ExcelField(title="放弃入职原因", align=2, sort=130)
	public String getCancelReason() {
		return cancelReason;
	}

	public void setCancelReason(String cancelReason) {
		this.cancelReason = cancelReason;
	}
	
	public Date getBeginIndutyDate() {
		return beginIndutyDate;
	}

	public void setBeginIndutyDate(Date beginIndutyDate) {
		this.beginIndutyDate = beginIndutyDate;
	}
	
	public Date getEndIndutyDate() {
		return endIndutyDate;
	}

	public void setEndIndutyDate(Date endIndutyDate) {
		this.endIndutyDate = endIndutyDate;
	}
		
}